var sMax;	// Isthe maximum number of stars
var holder; // Is the holding pattern for clicked state
var preSet; // Is the PreSet value onces a selection has been made
var rated;
var puntos = new Array();
var comentariosUsuario = new Array();
var nickCliente;
var nomJuego;
var usuarioValido = true;

// Rollover for image Stars //
function rating(num){
    
    var idComentario = num.id.substring(0, num.id.indexOf("_"));
    var id = num.id.substring(num.id.indexOf("_"), num.id.length);
    
    sMax = 0;	// Isthe maximum number of stars
    for(n=0; n<num.parentNode.childNodes.length; n++){
        
        if(num.parentNode.childNodes[n].nodeName === "A"){ sMax++; }
        
    }

    if(!rated){
        
        s = id.replace("_", ''); // Get the selected star
        a = 0;
        
        for(i=1; i<=sMax; i++){	
            
            if(i<=s){
                
                document.getElementById(idComentario + "_"+i).className = "on";
                holder = a+1;
                a++;
            
            }
            
            else{ document.getElementById(idComentario + "_"+i).className = ""; }
            
        }
            
    }
    
}

// For when you roll out of the the whole thing //
function off(me){

    var idComentario = me.id.substring(0, me.id.indexOf("_"));
    
    if(!rated){
		if(!preSet){	
			for(i=1; i<=sMax; i++){		
				document.getElementById(idComentario + "_"+i).className = "";
			}
		}else{
			rating(preSet);
			
                }
	}
}

function rellenar(num){
    
    if(!rated){
        
        rating(num);
    
        var id = num.id.substring(num.id.indexOf("_"), num.id.length);

        for(var i = 0; i < comentariosUsuario.length; i++){

            var elem = document.getElementById(comentariosUsuario[i] + id);
            rating(elem);

        }
        
    }
    
}

function desbloquear(){

    rated = !rated;

    if(rated){
        
        $(".botonPuntuar").css("display", "block");        
                
    }
    
    else{
        
        $(".botonPuntuar").css("display", "none");
        
    }

}

// When you actually rate something //
function puntuar(me){
        
    if(!rated){
        
        preSet = me;
               
        var puntaje = me.id.substring(me.id.indexOf("_") + 1, me.id.length);
        
        ingresarPuntaje(puntaje);
        rating(me);
        rellenar(me);
        desbloquear();
    
    }
        
}

function cargarPuntajes(){
    
    for(var i = 0; i < puntos.length; i++){
        
        cargarPuntos(document.getElementById(puntos[i]));
        
    }
    
}

function cargarPuntos(num){
    
    var idComentario = num.id.substring(0, num.id.indexOf("_"));
    var id = num.id.substring(num.id.indexOf("_"), num.id.length);
    
    var sMax = 0;	// Isthe maximum number of stars
    var holder;
    
    for(n=0; n<num.parentNode.childNodes.length; n++){
        
        if(num.parentNode.childNodes[n].nodeName === "A"){ sMax++; }
    
    }
    
    s = id.replace("_", ''); // Get the selected star
    a = 0;
    
    for(i=1; i<=sMax; i++){
        
        if(i<=s){
        
            document.getElementById(idComentario + "_"+i).className = "on";
            holder = a+1;
            a++;
        
        }
        
        else{ document.getElementById(idComentario + "_"+i).className = ""; }
        
    }
    
}

function containsArray(elem, array){
    
    for(var i = 0; i < array.length; i++){
        
        if(elem === array[i]){
            
            return true;
            
        }
        
    }
    
    return false;
    
}

function limpiar(num){
    
    if(!rated){
        
        off(num);
    
        var id = num.id.substring(num.id.indexOf("_"), num.id.length);

        for(var i = 0; i < comentariosUsuario.length; i++){

            var elem = document.getElementById(comentariosUsuario[i] + id);
            off(elem);

        }
        
    }
    
}

function cargarPuntajesTotales(){
    
    cargarPuntos(document.getElementById("estrellas5_5"));
    cargarPuntos(document.getElementById("estrellas4_4"));
    cargarPuntos(document.getElementById("estrellas3_3"));
    cargarPuntos(document.getElementById("estrellas2_2"));
    cargarPuntos(document.getElementById("estrellas1_1"));
    
}

function cargarAJAX(){
    
    $.ajax({ 
        
        type: "POST",
        url: "puntajesTotales.jsp",
        data: { nomJuego: nomJuego }

    }).done(function(data){
        
        $("#DIV_AJAX").html(data);
        cargarPuntajesTotales();
        
        var promedio = document.getElementById("I_Promedio").value;
        
        switch(promedio){
            
            case '1':
                cargarPuntos(document.getElementById("promedio_1"));
                break;
            
            case '2':
                cargarPuntos(document.getElementById("promedio_2"));
                break;
                
            case '3':
                cargarPuntos(document.getElementById("promedio_3"));
                break;
                
            case '4':
                cargarPuntos(document.getElementById("promedio_4"));
                break;
                
            case '5':
                cargarPuntos(document.getElementById("promedio_5"));
                break;
            
        }
    
    });
    
}

function ingresarPuntaje(puntaje){
        
    $.ajax({
        
        type: "POST",
        url: "puntaje.jsp",
        data: { puntaje: puntaje, nickCliente: nickCliente, nomJuego : nomJuego }
    
    }).done(function(){
        
        cargarAJAX();
        
    });
    
    cargarPuntajes();
    
}

$(document).ready(function() {
    
    var puntajes = document.getElementsByClassName("puntajes");

    for (var i = 0; i < puntajes.length; i++) {

        var puntaje = puntajes.item(i);

        var idComentario = puntaje.parentNode.id;
        
        var contiene = containsArray(idComentario, comentariosUsuario);
        
        var rateItString = "";
        var ratingString = "";
        var offString = "";
        var puntuarString = "";
        
        if(contiene){
        
            rateItString = "puntuar(this);";
            ratingString = "rellenar(this);";
            offString = "limpiar(this);";
            puntuarString = "<div id = 'DIV_BTNPuntuar" + idComentario + "'><button class = 'botonPuntuar' id = 'BTN_Puntuar' onclick = 'desbloquear();'>Puntuar</button></div>";
            
        }

        puntaje.innerHTML = "<div id='rateMe" + idComentario + "' class = 'rateMe' title='Rate Me...'>" +
        "<a class = 'estrellas' onclick='" + rateItString + "' id='" + idComentario + "_1' title='<(*o*<)(o_o)(>*o*)>' onmouseover='" + ratingString + "' onmouseout='" + offString + "'></a>" +
        "<a class = 'estrellas' onclick='" + rateItString + "' id='" + idComentario + "_2' title='No esta mal!' onmouseover='" + ratingString + "' onmouseout='" + offString + "'></a>" +
        "<a class = 'estrellas' onclick='" + rateItString + "' id='" + idComentario + "_3' title='Bueno!' onmouseover='" + ratingString + "' onmouseout='" + offString + "'></a>" +
        "<a class = 'estrellas' onclick='" + rateItString + "' id='" + idComentario + "_4' title='Muy Bueno!' onmouseover='" + ratingString + "' onmouseout='" + offString + "'></a>" +
        "<a class = 'estrellas' onclick='" + rateItString + "' id='" + idComentario + "_5' title='Genial!!!' onmouseover='" + ratingString + "' onmouseout='" + offString + "'></a>" +
        "</div>" + puntuarString;
                
    }

    cargarPuntajes();
    
    rated = true;
    
    cargarAJAX();
    
});

